/*!
    \file  gui.h
    \brief gui 头文件

    \version 2025-08-08, V1.1.0, 适用于 gd32c2x1 的演示
*/


/*
    版权所有 (c) 2025, GigaDevice Semiconductor Inc.

    允许在满足以下条件的情况下以源代码和二进制形式重新分发和使用，无论是否经过修改：

    1. 源代码的再分发必须保留上述版权声明、本条件列表和以下免责声明。
    2. 二进制形式的再分发必须在随发行版提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    3. 未经事先书面许可，不得使用版权持有者或其贡献者的名称为本软件衍生的产品做推广、背书或宣传。

    本软件由版权持有者和贡献者按“原样”提供，不提供任何明示或暗示的担保，包括但不限于对适销性和特定用途适用性的暗示担保。
    在任何情况下，版权持有者或贡献者均不对因使用本软件而引起的任何直接、间接、偶然、特殊、惩罚性或后果性损害（包括但不限于采购替代商品或服务、使用损失、数据或利润损失、业务中断等）承担责任，无论是在合同诉讼、严格责任或侵权（包括疏忽或其他原因）中，即使已被告知发生此类损害的可能性。
*/


#ifndef GUI_H
#define GUI_H

#include "gd32c2x1.h"
#include <stdlib.h>

/* BGR格式转RGB格式 */
uint16_t lcd_bgr2rgb(uint16_t c);
/* gui 画圆 */
void gui_circle(uint16_t x, uint16_t y, uint16_t r, uint16_t fc);
/* gui 画线 */
void gui_draw_line(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
/* gui 画盒子 */
void gui_box(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t bc);
/* gui 画盒子2 */
void gui_box2(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint8_t mode);
/* gui 画矩形 */
void gui_rect(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t fc);
/* 显示按下的按钮效果 */
void display_button_down(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
/* 显示弹起的按钮效果 */
void display_button_up(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
/* gui 绘制 gbk16 字体 */
void gui_draw_font_gbk16(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, char *s);
/* gui 绘制 gbk24 字体 */
void gui_draw_font_gbk24(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, char *s);
/* gui 绘制 gbk16 汉字 */
void gui_draw_characters_gbk16(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, char *s);
/* gui 绘制 gbk24 汉字 */
void gui_draw_characters_gbk24(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, char *s);
/* gui 绘制 num32 字体 */
void gui_draw_font_num32(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint16_t num);

#endif /* GUI_H */
